# 4.3 创建数字列表

# 4.3.1 使用函数range()
# range(
#     起点<整型数>: 仅限位置实参 | 0,
#     终点<整型数>: 仅限位置实参 | 无默认值,
#     步长<整型数>: 仅限位置实参 | 1)
# 返回元素为按步长从起点（含）到终点（不含）的整型数的可迭代对象
for value in range(1, 5):
    print(value)
for value in range(1, 6):
    print(value)

# 4.3.2 使用range()创建数字列表
# list(
#     待转化对象<列表/元组/字典/字符串/其他某些可迭代对象>: 仅限位置实参; 待转化对象为字典时，返回的列表的元素为字典键 | [])
# 返回元素和顺序与待转化对象相同的列表实例
numbers = list(range(1, 6))
print(numbers)
even_numbers = list(range(2, 11, 2))
print(even_numbers)
# 生成平方数列
squares = []
for value in range(1, 11):
    square = value**2
    squares.append(square)
print(squares)

# 4.3.3 对数字列表执行简单的统计计算
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

# min(
#     待统计集合<列表/元组/字符串/字典>: 不接收关键字实参; 对于字典，函数作用于字典键;
#         集合元素的类型应当相同或进行自动类型转换后可以相同，如整型数向浮点数 | 无默认值,
#     key=取最小值依据<函数名>: 仅限关键字实参; 返回集合元素用于比较大小的属性 | None: 集合元素的值)
# 返回集合元素中指定属性最小的元素
# 按一般比较规则（按一般排序规则推导）取最小值
print(min(digits))

# max(
#     待统计集合<列表/元组/字符串/字典>: 不接收关键字实参; 对于字典，函数作用于字典键;
#         集合元素的类型应当相同或进行自动类型转换后可以相同，如整型数向浮点数 | 无默认值,
#     key=取最大值依据<函数名>: 仅限关键字实参; 返回集合元素用于比较大小的属性 | None: 集合元素的值)
# 返回集合元素中指定属性最大的元素
# 按一般比较规则（按一般排序规则推导）取最大值
print(max(digits))

# sum(
#     待统计集合<列表/元组/字典>: 仅限位置实参; 对于字典，函数作用于字典键;
#         集合为列表和元组时元素的类型应当为整型数或浮点数; 集合为字典时字典键应当为整型数或浮点数 | 无默认值)
# 返回集合元素的总和
print(sum(digits))

# 4.3.4 列表解析
# 将for循环与创建新元素的代码合并为一行
# [计算元素的表达式 for 循环变量 in 可迭代对象]
# 返回元素按照表达式和循环变量依次计算的列表实例
squares = [value**2 for value in range(1, 11)]
print(squares)
